package com.fdb.efp.nls.service.impl;

import com.fdb.basic.framework.core.base.FrameworkService;
import com.fdb.efp.nls.common.ConsoleConstant;
import com.fdb.efp.flow.common.vo.PageApproveVO;
import com.fdb.efp.nls.service.facade.ColltTaskFlowAppApprService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


@Service("colltTaskFlowAppApprService")
public class ColltTaskFlowAppApprServiceImpl implements ColltTaskFlowAppApprService,FrameworkService{

    private static Logger logger = LoggerFactory.getLogger(ColltTaskFlowAppServiceImpl.class);

//    @Autowired
//    private ColltTaskFlowAppDao colltTaskFlowAppDao;
//    @Autowired
//    private ColltTaskInfoDao colltTaskInfoDao;
//    @Autowired
//    @Qualifier("pubSysInfoService")
//    private PubSysInfoService pubSysInfoService;
//    @Autowired
//    @Qualifier("bizEventInfoService")
//    private BizEventInfoService bizEventInfoService;

    @Autowired
    private ColltTaskFlowApprDealService colltTaskFlowApprDealService;

    @Override
    public void pass(String bizSerno, PageApproveVO pageApproveVo) {
        logger.info("专项催收人工流转通过流水号:" + bizSerno);

        colltTaskFlowApprDealService.colltTaskFlowApprPass(bizSerno, pageApproveVo, ConsoleConstant.APRV_STATUS_03);

        /**try {
            if (Objects.nonNull(bizSerno) && !"".equals(bizSerno)) {
                ColltTaskFlowAppVO vo = new ColltTaskFlowAppVO();
                vo.setFlowApplyNo(bizSerno);
                ColltTaskFlowApp incolltTaskFlowApp = new ColltTaskFlowApp();
                beanCopy(vo,incolltTaskFlowApp);
                incolltTaskFlowApp= colltTaskFlowAppDao.queryByPk(incolltTaskFlowApp);
                beanCopy(incolltTaskFlowApp,vo);
                if (Objects.nonNull(vo)) {
                    vo.setLastUpdateTime(pubSysInfoService.getOpenday(BaseConstant.SYS_ID_1001));
                    vo.setLastUpdateUser(pageApproveVo.getAprvUserId());
                    // 审批用户编号
                    vo.setAprvUserCode(pageApproveVo.getAprvUserId());
                    // 审批意见
                    vo.setAprvComment(pageApproveVo.getAprvComment());
                    // 审批状态 = 通过
                    vo.setApproveStatus(ConsoleConstant.APRV_STATUS_03);
                    // 审批时间
                    vo.setAprvTime(TimeUtil.getCurrentDateTime());
                }
                beanCopy(vo, incolltTaskFlowApp);
                colltTaskFlowAppDao.updateByPk(incolltTaskFlowApp);

                ColltTaskInfo colltTaskInfo = new ColltTaskInfo();
                colltTaskInfo.setColltTaskNo(incolltTaskFlowApp.getColltTaskNo());
                ColltTaskInfo qs = colltTaskInfoDao.queryByPk(colltTaskInfo);
                qs.setColltWay(incolltTaskFlowApp.getFlowColltTaskType());
                qs.setIdentWay(RiskColltConstant.IDENT_WAY_02);
                qs.setLastUpdateUser(pageApproveVo.getAprvUserId());
                //案件流转到委外催收时，需赋值经手类型，统一为"一手"
                if(RiskColltConstant.STD_COLLT_WAY_03.equals(incolltTaskFlowApp.getFlowColltTaskType())){
                    qs.setOutsHdleType(RiskColltConstant.STD_HANDLE_TYPE_01);
                }
                colltTaskInfoDao.updateFlowInfo(qs);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }*/
    }

    @Override
    public void refuse(String bizSerno, PageApproveVO pageApproveVo) {
        logger.info("专项催收人工流转拒绝流水号:" + bizSerno);

        colltTaskFlowApprDealService.colltTaskFlowApprRefuse(bizSerno, pageApproveVo, ConsoleConstant.APRV_STATUS_04);
        /**try {
            if (Objects.nonNull(bizSerno) && !"".equals(bizSerno)) {
                ColltTaskFlowAppVO vo = new ColltTaskFlowAppVO();
                vo.setFlowApplyNo(bizSerno);
                ColltTaskFlowApp incolltTaskFlowApp = new ColltTaskFlowApp();
                beanCopy(vo,incolltTaskFlowApp);
                incolltTaskFlowApp= colltTaskFlowAppDao.queryByPk(incolltTaskFlowApp);
                beanCopy(incolltTaskFlowApp,vo);
                if (Objects.nonNull(vo)) {
                    vo.setLastUpdateTime(pubSysInfoService.getOpenday(BaseConstant.SYS_ID_1001));
                    vo.setLastUpdateUser(pageApproveVo.getAprvUserId());
                    // 审批用户编号
                    vo.setAprvUserCode(pageApproveVo.getAprvUserId());
                    // 审批意见
                    vo.setAprvComment(pageApproveVo.getAprvComment());
                    // 审批状态 = 拒绝
                    vo.setApproveStatus(ConsoleConstant.APRV_STATUS_04);
                    // 审批时间
                    vo.setAprvTime(TimeUtil.getCurrentDateTime());

//                    vo.setLastUpdateUser(vo.getLoginUserId());
//                    vo.setLastUpdateTime(TimeUtil.getCurrentDateTime());
                }
                beanCopy(vo, incolltTaskFlowApp);
                colltTaskFlowAppDao.updateByPk(incolltTaskFlowApp);

                //拒绝后任务状态改为待处理
                ColltTaskInfo colltTaskInfo = new ColltTaskInfo();
                colltTaskInfo.setColltTaskNo(incolltTaskFlowApp.getColltTaskNo());
                ColltTaskInfo tS = colltTaskInfoDao.queryByPk(colltTaskInfo);
                tS.setTaskSts(ConsoleConstant.APRV_STATUS_01);
                colltTaskInfoDao.updateByPk(tS);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }*/
    }

    @Override
    public void repulse(String bizSerno, PageApproveVO pageApproveVo) {
        // 目前业务人工流转只有通过和拒绝，无打回 @date 2020/01/14
        /**try{
            logger.info("专项催收人工流转打回流水号" + bizSerno);
            if(bizEventInfoService.isFirstNode(bizSerno)){
                // 更新打回状态
                if (Objects.nonNull(bizSerno) && !"".equals(bizSerno)) {
                    ColltTaskFlowAppVO vo = new ColltTaskFlowAppVO();
                    vo.setFlowApplyNo(bizSerno);
                    ColltTaskFlowApp incolltTaskFlowApp = new ColltTaskFlowApp();
                    beanCopy(vo, incolltTaskFlowApp);
                    incolltTaskFlowApp = colltTaskFlowAppDao.queryByPk(incolltTaskFlowApp);
                    beanCopy(incolltTaskFlowApp, vo);
                    if (Objects.nonNull(vo)) {
                        vo.setLastUpdateTime(pubSysInfoService.getOpenday(BaseConstant.SYS_ID_1001));
                        vo.setLastUpdateUser(pageApproveVo.getAprvUserId());
                        // 审批用户编号
                        vo.setAprvUserCode(pageApproveVo.getAprvUserId());
                        // 审批意见
                        vo.setAprvComment(pageApproveVo.getAprvComment());
                        // 审批状态 = 打回
                        vo.setApproveStatus(ConsoleConstant.APRV_STATUS_05);
                        // 审批时间
                        vo.setAprvTime(TimeUtil.getCurrentDateTime());
                    }
                    beanCopy(vo, incolltTaskFlowApp);
                    colltTaskFlowAppDao.updateByPk(incolltTaskFlowApp);
                }
            }
        }catch(Exception e){
            e.printStackTrace();
        }*/
    }

}
